﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace ObtenerMails
{
    public partial class Form1 : Form
    {
        string nombreArchivo;
        List<String> mails = new List<string>();
        List<String> NombresArchivos = new List<string>();
        public Form1()
        {
            InitializeComponent();
            
        }

        private void cargar_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                if (openFileDialog1.FileName.EndsWith("ctt"))
                {
                    
                    List<String> lineas = new List<string>();
                    nombreArchivo = openFileDialog1.FileName;
                    char[] spl = {'\\'};
                    int largo= nombreArchivo.Split(spl).ToList().Count;
                    

                    NombresArchivos.Add(nombreArchivo.Split(spl)[largo - 1]);
                  //  string aLabel = "";
                    listBox1.Items.Clear();
                    foreach (string s in NombresArchivos)
                    {
                        listBox1.Items.Add(s);
                     //   aLabel+=s+"\n";
                    }
                  //  label2.Text = aLabel;
                    StreamReader sr = new StreamReader(nombreArchivo);

                    string l = "";
                    while (true)
                    {
                        l = sr.ReadLine();
                        if (l != null)
                        {
                            lineas.Add(l);
                        }
                        else
                        {
                            break;
                        }
                    }


                    for (int i = 0; i < lineas.Count; i++)
                    {
                        while (!lineas[i].StartsWith("<"))
                        {
                            lineas[i] = lineas[i].Substring(1);
                        }

                        

                    }


                    for (int i = 0; i < lineas.Count; i++)
                    {
                        if (!lineas[i].StartsWith("<contact type=\"1\">"))
                        {
                            lineas[i] = null;
                        }



                    }

                    while (lineas.Contains(null))
                    {
                        lineas.Remove(null);
                    }


                    for (int i = 0; i < lineas.Count; i++)
                    {
                        lineas[i] = lineas[i].Substring(18);
                        lineas[i] = lineas[i].Substring(0, lineas[i].Length - 10);
                    }


                    foreach (string n in lineas)
                    {
                        if (n.Contains("@"))
                        {
                            mails.Add(n);
                        }
                    }

                    

                }
                else
                {
                    nombreArchivo = null;
                    MessageBox.Show("Seleccione un archivo valido");
                }
            }
        }

        private void exportar_Click(object sender, EventArgs e)
        {
            List<String> lista2 = new List<string>();

            foreach (String w in mails)
            {
                if (!lista2.Contains(w))
                {
                    lista2.Add(w);
                }
            }


            mails = lista2;

            if (nombreArchivo != null && mails.Count != 0)
            {
                saveFileDialog1.Filter = "Text File|*.txt";
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    string aGuardar = mails[0];

                    if (mails.Count > 0)
                    {
                        for (int i = 1; i < mails.Count; i++)
                        {
                            aGuardar += ", " + mails[i];
                            
                        }
                        
                    }


                    StreamWriter sw = new StreamWriter(saveFileDialog1.FileName);

                    sw.Write(aGuardar);

                    sw.Close();

                }





            }


            else
            {
                MessageBox.Show("No ha seleccionado ningun archivo");
            }

        }
    }
}
